Closed Bug 1503986 Opened 7 years ago Closed 7 years ago

src/gfx/skia/skia/src/core/SkWriteBuffer.cpp:238: fatal error: "assert(name)"

Categories

(Core :: Graphics: Canvas2D, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox-esr60 --- unaffected
firefox63 --- unaffected
firefox64 --- unaffected
firefox65 --- fixed

People

(Reporter: tsmith, Assigned: lsalzman)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase.html
This assertion is triggered even with MOZ_SKIA_DISABLE_ASSERTS=1 set Reduced with m-c: BuildID=20181101133336 SourceStamp=182a1b088330a2d72310ae2561004d955571e236 src/gfx/skia/skia/src/core/SkWriteBuffer.cpp:238: fatal error: "assert(name)" #0 SkBinaryWriteBuffer::writeFlattenable(SkFlattenable const*) src/gfx/skia/skia/src/core/SkWriteBuffer.cpp:252:17 #1 calculate_size_and_flatten(SkScalerContextRec const&, SkScalerContextEffects const&, SkBinaryWriteBuffer*) src/gfx/skia/skia/src/core/SkScalerContext.cpp:1134:50 #2 SkScalerContext::AutoDescriptorGivenRecAndEffects(SkScalerContextRec const&, SkScalerContextEffects const&, SkAutoDescriptor*) src/gfx/skia/skia/src/core/SkScalerContext.cpp:1166:15 #3 SkScalerContext::CreateDescriptorAndEffectsUsingPaint(SkPaint const&, SkSurfaceProps const*, SkScalerContextFlags, SkMatrix const*, SkAutoDescriptor*, SkScalerContextEffects*) src/gfx/skia/skia/src/core/SkScalerContext.cpp:1124:12 #4 SkStrikeCache::FindOrCreateStrikeExclusive(SkPaint const&, SkSurfaceProps const*, SkScalerContextFlags, SkMatrix const*) src/gfx/skia/skia/src/core/SkStrikeCache.cpp:154:17 #5 SkGlyphRunListPainter::drawForBitmapDevice(SkGlyphRunList const&, SkMatrix const&, std::function<std::function<void (SkMask const&, SkGlyph const&, SkPoint)> (SkPaint const&, SkArenaAlloc*)>, std::function<std::function<void (SkPath const*, SkGlyph const&, SkPoint)> (SkPaint const&, float, SkArenaAlloc*)>) src/gfx/skia/skia/src/core/SkGlyphRunPainter.cpp:222:26 #6 SkDraw::drawGlyphRunList(SkGlyphRunList const&, SkGlyphRunListPainter*) const src/gfx/skia/skia/src/core/SkDraw_text.cpp:139:19 #7 SkBitmapDevice::drawGlyphRunList(SkGlyphRunList const&) src/gfx/skia/skia/src/core/SkBitmapDevice.cpp:585:5 #8 SkCanvas::onDrawPosText(void const*, unsigned long, SkPoint const*, SkPaint const&) src/gfx/skia/skia/src/core/SkCanvas.cpp:2447:23 #9 SkCanvas::drawPosText(void const*, unsigned long, SkPoint const*, SkPaint const&) src/gfx/skia/skia/src/core/SkCanvas.cpp:2531:15 #10 mozilla::gfx::DrawTargetSkia::DrawGlyphs(mozilla::gfx::ScaledFont*, mozilla::gfx::GlyphBuffer const&, mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const*, mozilla::gfx::DrawOptions const&) src/gfx/2d/DrawTargetSkia.cpp:1476:12 #11 GlyphBufferAzure::DrawStroke(gfxContext::AzureState const&, mozilla::gfx::GlyphBuffer&) src/gfx/thebes/gfxFont.cpp:1860:13 #12 GlyphBufferAzure::FlushGlyphs() src/gfx/thebes/gfxFont.cpp:1836:13 #13 GlyphBufferAzure::~GlyphBufferAzure() src/gfx/thebes/gfxFont.cpp:1710:13 #14 gfxFont::Draw(gfxTextRun const*, unsigned int, unsigned int, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>*, TextRunDrawParams const&, mozilla::gfx::ShapedTextFlags) src/gfx/thebes/gfxFont.cpp:2446:5 #15 gfxTextRun::DrawGlyphs(gfxFont*, gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>*, gfxTextRun::PropertyProvider*, gfxTextRun::Range, TextRunDrawParams&, mozilla::gfx::ShapedTextFlags) const src/gfx/thebes/gfxTextRun.cpp:440:12 #16 gfxTextRun::Draw(gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>, gfxTextRun::DrawParams const&) const src/gfx/thebes/gfxTextRun.cpp:686:9 #17 mozilla::dom::CanvasBidiProcessor::DrawText(int, int) src/dom/canvas/CanvasRenderingContext2D.cpp:4190:15 #18 nsBidiPresUtils::ProcessText(char16_t const*, int, unsigned char, nsPresContext*, nsBidiPresUtils::BidiProcessor&, nsBidiPresUtils::Mode, nsBidiPositionResolve*, int, int*, nsBidi*) src/layout/base/nsBidiPresUtils.cpp:2183:20 #19 mozilla::dom::CanvasRenderingContext2D::DrawOrMeasureText(nsTSubstring<char16_t> const&, float, float, mozilla::dom::Optional<double> const&, mozilla::dom::CanvasRenderingContext2D::TextDrawOperation, float*) src/dom/canvas/CanvasRenderingContext2D.cpp:4460:8 #20 mozilla::dom::CanvasRenderingContext2D::StrokeText(nsTSubstring<char16_t> const&, double, double, mozilla::dom::Optional<double> const&, mozilla::ErrorResult&) src/dom/canvas/CanvasRenderingContext2D.cpp:3847:12 #21 mozilla::dom::CanvasRenderingContext2D_Binding::strokeText(JSContext*, JS::Handle<JSObject*>, mozilla::dom::CanvasRenderingContext2D*, JSJitMethodCallArgs const&) src/obj-firefox/dom/bindings/CanvasRenderingContext2DBinding.cpp:6073:9 #22 bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) src/dom/bindings/BindingUtils.cpp:3320:13 #23 CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), JS::CallArgs const&) src/js/src/vm/Interpreter.cpp:468:15 #24 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) src/js/src/vm/Interpreter.cpp:560:16 #25 InternalCall(JSContext*, js::AnyInvokeArgs const&) src/js/src/vm/Interpreter.cpp:614:12 #26 Interpret(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:3462:18 #27 js::RunScript(JSContext*, js::RunState&) src/js/src/vm/Interpreter.cpp:447:12 #28 js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) src/js/src/vm/Interpreter.cpp:587:15 #29 InternalCall(JSContext*, js::AnyInvokeArgs const&) src/js/src/vm/Interpreter.cpp:614:12 #30 js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) src/js/src/vm/Interpreter.cpp:633:10 #31 JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) src/js/src/jsapi.cpp:2975:12 #32 mozilla::dom::EventListener::HandleEvent(JSContext*, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&) src/obj-firefox/dom/bindings/EventListenerBinding.cpp:52:8 #33 void mozilla::dom::EventListener::HandleEvent<mozilla::dom::EventTarget*>(mozilla::dom::EventTarget* const&, mozilla::dom::Event&, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*) src/obj-firefox/dist/include/mozilla/dom/EventListenerBinding.h:66:12 #34 mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*) src/dom/events/EventListenerManager.cpp:1104:9 #35 mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool) src/dom/events/EventListenerManager.cpp:1309:15 #36 mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:424:17 #37 mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&) src/dom/events/EventDispatcher.cpp:641:16 #38 mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*) src/dom/events/EventDispatcher.cpp:1156:11 #39 mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*) src/dom/events/EventDispatcher.cpp #40 nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&) src/dom/base/nsINode.cpp:1142:5 #41 nsContentUtils::DispatchEvent(nsIDocument*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, mozilla::Trusted, bool*, mozilla::ChromeOnlyDispatch) src/dom/base/nsContentUtils.cpp:4456:28 #42 nsContentUtils::DispatchTrustedEvent(nsIDocument*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, bool*) src/dom/base/nsContentUtils.cpp:4418:10 #43 nsIDocument::DispatchContentLoadedEvents() src/dom/base/nsDocument.cpp:5200:3 #44 mozilla::detail::RunnableMethodImpl<nsIDocument*, void (nsIDocument::*)(), true, (mozilla::RunnableKind)0>::Run() src/obj-firefox/dist/include/nsThreadUtils.h:1242:13 #45 mozilla::SchedulerGroup::Runnable::Run() src/xpcom/threads/SchedulerGroup.cpp:337:32 #46 nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1245:14 #47 NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:530:10 #48 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:97:21 #49 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:325:10 #50 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:298:3 #51 nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:158:27 #52 XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:939:22 #53 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:269:9 #54 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:325:10 #55 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:298:3 #56 XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:765:34 #57 content_process_main(mozilla::Bootstrap*, int, char**) src/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30 #58 main src/browser/app/nsBrowserApp.cpp:301:18 #59 __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/../csu/libc-start.c:291 #60 _start (firefox+0x329f4)
Flags: in-testsuite?
Flags: needinfo?(lsalzman)
Priority: -- → P3
Prior to this update we were registering these flattenables. During the update it had managed to escape failing any reftests without registering them, so I thought we were good that way... Apparently not. This restores the registration code.
Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Flags: needinfo?(lsalzman)
Attachment #9022234 - Flags: review?(rhunt)
Attachment #9022234 - Flags: review?(rhunt) → review+
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: